package com.rshang.rsdp.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.rshang.rsdp.bean.DataGrid;
import com.rshang.rsdp.bean.Response;
import com.rshang.rsdp.entity.DmRsdlGsb;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;

/**
 * <p>
 * 小公司代码表 服务类
 * </p>
 *
 * @author zhangjun
 * @since 2017-08-20
 */
public interface IDmRsdlGsbService extends IService<DmRsdlGsb> {

    /**
     * 分页查询
     *
     * @param page    分页对象
     * @param request HttpServletRequest对象
     *
     * @return DataGrid
     */
    public DataGrid getXgsPageList(Page<HashMap> page, HttpServletRequest request);

    /**
     * 新增保存方法
     *
     * @param request HttpServletRequest对象
     * @param czr     操作人
     *
     * @return Response
     */
    public Response addSave(HttpServletRequest request, String czr);

    /**
     * 根据id获取小公司信息
     *
     * @param gsId 公司id
     *
     * @return DmRsdlGsb
     */
    public DmRsdlGsb get(HttpServletRequest request);


    /**
     * 编辑保存方法
     *
     * @param request HttpServletRequest对象
     * @param czr     操作人
     *
     * @return Response
     */
    public Response editSave(HttpServletRequest request, String czr);

    /**
     * 删除保存方法
     *
     * @param request HttpServletRequest对象
     * @param czr     操作人
     *
     * @return Response
     */
    public Response deleteSave(HttpServletRequest request, String czr);

    /**
     * 校验公司名称
     *
     * @param request HttpServletRequest对象
     *
     * @return Response
     */
    public Response checkXgsmc(HttpServletRequest request);
    
    /**
     * 校验公司名称2 用于员工信息新增公司校验
     *
     * @param request HttpServletRequest对象
     *
     * @return Response
     */
    public Response checkXgsmc2(HttpServletRequest request);

    /**
     * 模板上传
     *
     * @param file 上传文件对象
     * @param czr  操作人
     *
     * @return Response
     */
    public Response importSave(MultipartFile file, String czr);

    /**
     * 获取操作人小公司列表
     *
     * @return List<HashMap>
     */
    public List<HashMap> getXgsByCzr(HttpServletRequest request, String czr);

    /**
     * 根据公司获取有效小公司列表
     *
     * @return List<HashMap>
     */
    public List<DmRsdlGsb> getYxXgsByGs(HttpServletRequest request);
    
    /**
     * 员工新增公司保存方法
     *
     * @param request HttpServletRequest对象
     * @param czr     操作人
     *
     * @return Response
     */
    public Response gsAddSave(HttpServletRequest request, String czr);
}
